Studio: Basic layout, shows textures and allows searching by name
This commit is contained in:
parent
2431d62c8f
commit
a97e591158
|
@ -1,17 +1,37 @@
|
||||||
|
# Common
|
||||||
.tox/
|
.tox/
|
||||||
*.pyc
|
*.pyc
|
||||||
/virtualenv
|
/virtualenv
|
||||||
/minecraftcodex/herobrine/local_settings.py
|
|
||||||
/MANIFEST
|
/MANIFEST
|
||||||
|
|
||||||
|
# Configs
|
||||||
|
/minecraftcodex/herobrine/local_settings.py
|
||||||
|
|
||||||
|
# CSS
|
||||||
|
|
||||||
|
# Database
|
||||||
/minecraftcodex/database/static/lib/bootstrap.css
|
/minecraftcodex/database/static/lib/bootstrap.css
|
||||||
/minecraftcodex/database/static/lib/responsive.css
|
/minecraftcodex/database/static/lib/responsive.css
|
||||||
|
/minecraftcodex/database/static/css/*.css
|
||||||
|
/minecraftcodex/database/static/js/*.js
|
||||||
|
|
||||||
|
# Blog
|
||||||
|
/minecraftcodex/blog/static/js/*.js
|
||||||
|
|
||||||
|
# Studio
|
||||||
|
/minecraftcodex/studio/static/css/*.css
|
||||||
|
/minecraftcodex/studio/static/js/*.js
|
||||||
|
|
||||||
|
# Utils
|
||||||
/utils/miner/classes
|
/utils/miner/classes
|
||||||
/utils/miner/jarfile
|
/utils/miner/jarfile
|
||||||
/utils/miner/*.jar
|
/utils/miner/*.jar
|
||||||
/utils/miner/*.json
|
/utils/miner/*.json
|
||||||
/minecraftcodex/database/static/css/*.css
|
|
||||||
/minecraftcodex/database/static/js/*.js
|
# Backups and local development
|
||||||
/minecraftcodex/blog/static/js/*.js
|
|
||||||
/*.json
|
/*.json
|
||||||
/dev_ddbb.sqlite
|
/dev_ddbb.sqlite
|
||||||
|
|
||||||
|
# Shitty folders
|
||||||
.sass-cache
|
.sass-cache
|
||||||
|
__pycache__
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
Studio =
|
||||||
|
domElement: null
|
||||||
|
|
||||||
|
renderer: null
|
||||||
|
width: 600
|
||||||
|
height: 600
|
||||||
|
|
||||||
|
scene: null
|
||||||
|
|
||||||
|
camera: null
|
||||||
|
|
||||||
|
lights: []
|
||||||
|
_lights: {}
|
||||||
|
|
||||||
|
objects: []
|
||||||
|
_objects: {}
|
||||||
|
|
||||||
|
# Methods
|
||||||
|
checkWebGLsupport: ->
|
||||||
|
return !!window.WebGLRenderingContext;
|
||||||
|
|
||||||
|
init: (dom, width, height) ->
|
||||||
|
if not @checkWebGLsupport()
|
||||||
|
return false
|
||||||
|
|
||||||
|
@domElement = document.querySelector dom
|
||||||
|
|
||||||
|
@renderer = new THREE.WebGLRenderer()
|
||||||
|
@renderer.setSize width, height
|
||||||
|
|
||||||
|
@domElement.appendChild @renderer.domElement
|
||||||
|
|
||||||
|
|
||||||
|
window.Studio = Studio
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,42 @@
|
||||||
|
.studio-workspace
|
||||||
|
margin: 0 auto
|
||||||
|
width: $workspace-width
|
||||||
|
|
||||||
|
.panel
|
||||||
|
display: inline-block
|
||||||
|
|
||||||
|
.panel-canvas
|
||||||
|
display: block
|
||||||
|
margin: 0 auto
|
||||||
|
width: $canvas-width
|
||||||
|
|
||||||
|
.studio-canvas
|
||||||
|
width: $canvas-width
|
||||||
|
height: $canvas-width
|
||||||
|
|
||||||
|
.panel-left
|
||||||
|
left: 10px
|
||||||
|
position: fixed
|
||||||
|
top: $top-margin
|
||||||
|
|
||||||
|
width: $panel-width
|
||||||
|
|
||||||
|
.texture-list
|
||||||
|
max-height: 500px
|
||||||
|
overflow-x: hidden
|
||||||
|
overflow-y: scroll
|
||||||
|
|
||||||
|
.item
|
||||||
|
display: inline-block
|
||||||
|
width: (100/$textures-per-row) - 1%
|
||||||
|
|
||||||
|
&.hide
|
||||||
|
display: none
|
||||||
|
|
||||||
|
|
||||||
|
.panel-right
|
||||||
|
position: fixed
|
||||||
|
right: 10px
|
||||||
|
top: $top-margin
|
||||||
|
|
||||||
|
width: $panel-width
|
|
@ -0,0 +1,8 @@
|
||||||
|
// Sizes
|
||||||
|
$top-margin: 60px
|
||||||
|
|
||||||
|
$workspace-width: 100%
|
||||||
|
$panel-width: 400px
|
||||||
|
$canvas-width: 700px
|
||||||
|
|
||||||
|
$textures-per-row: 8
|
|
@ -0,0 +1,2 @@
|
||||||
|
@import variables.sass
|
||||||
|
@import panels.sass
|
|
@ -1,9 +1,47 @@
|
||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
{% block head %}
|
{% block head %}
|
||||||
|
<link rel="stylesheet" href="/static/css/studio.css" />
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
<script type="text/javascript" src="/static/lib/jquery.2.0.0.js"></script>
|
<script type="text/javascript" src="/static/lib/jquery.2.0.0.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/lib/three.r58.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/lib/bootstrap/js/bootstrap-transition.js"></script>
|
||||||
<script type="text/javascript" src="/static/lib/bootstrap/js/bootstrap-dropdown.js"></script>
|
<script type="text/javascript" src="/static/lib/bootstrap/js/bootstrap-dropdown.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/lib/bootstrap/js/bootstrap-collapse.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/js/studio.js"></script>
|
||||||
|
<script defer="defer">
|
||||||
|
window.onload = function() {
|
||||||
|
// Initialize Studio
|
||||||
|
mcstudio = window.Studio
|
||||||
|
mcstudio.init('.studio-canvas', 600, 600);
|
||||||
|
|
||||||
|
// Texture search
|
||||||
|
$('.texture-list .item').hover(function() {
|
||||||
|
$('div.texture-name').html($(this).attr('data-name'))
|
||||||
|
})
|
||||||
|
|
||||||
|
$('div.texture-list').on('mouseout', function() {
|
||||||
|
$('div.texture-name').html('')
|
||||||
|
})
|
||||||
|
|
||||||
|
$('input.texture-search').on('keyup', function(event) {
|
||||||
|
if (event.which == 13 || event.keyCode == 13) {
|
||||||
|
var value = $(this).val()
|
||||||
|
if (value == '') {
|
||||||
|
$('.texture-list .item').removeClass('hide')
|
||||||
|
} else {
|
||||||
|
$('.texture-list .item').addClass('hide')
|
||||||
|
$('.texture-list [data-name*="' + value + '"]').removeClass('hide')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.which == 27 || event.keyCode == 27) {
|
||||||
|
$(this).val('')
|
||||||
|
$('.texture-list .item').removeClass('hide')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
|
@ -12,7 +50,7 @@
|
||||||
<div class="navbar-inner">
|
<div class="navbar-inner">
|
||||||
<div class="container" style="width: auto;">
|
<div class="container" style="width: auto;">
|
||||||
<a class="brand" href="/">
|
<a class="brand" href="/">
|
||||||
Minecraft Codex : Studio
|
MinecraftCodex : Studio
|
||||||
</a>
|
</a>
|
||||||
{#<div class="nav-collapse">#}
|
{#<div class="nav-collapse">#}
|
||||||
<div>
|
<div>
|
||||||
|
@ -46,15 +84,63 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="studio-editor">
|
<div class="studio-workspace">
|
||||||
<div class="span4">
|
<div class="panel panel-left">
|
||||||
<div class="well">Left</div>
|
<div class="well">
|
||||||
|
<div class="texture-name pull-right"></div>
|
||||||
|
<h3 class="margin-none">Textures</h3>
|
||||||
|
<div class="text-center">
|
||||||
|
<input type="text" class="texture-search" placeholder="Search textures" />
|
||||||
|
</div>
|
||||||
|
<hr class="margin-none"/>
|
||||||
|
<div class="texture-list">
|
||||||
|
{% for item in textures %}
|
||||||
|
<div class="item" data-type="texture" data-name="{{ item.name }}">
|
||||||
|
<div class="codexicon x2">
|
||||||
|
<img src="/static/textures/{{ item.get_image(2) }}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="span8">
|
<div class="panel panel-canvas">
|
||||||
<div class="well">Canvas</div>
|
<div class="well">
|
||||||
|
<div class="studio-canvas"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="span4">
|
<div class="panel panel-right">
|
||||||
<div class="well">Right</div>
|
<div class="well">
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-danger btn-small pull-right"
|
||||||
|
data-toggle="collapse" data-target="#camera">
|
||||||
|
Hide
|
||||||
|
</button>
|
||||||
|
<h3 class="margin-none">Camera</h3>
|
||||||
|
<div id="camera" class="collapse in">
|
||||||
|
here things
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-danger btn-small pull-right"
|
||||||
|
data-toggle="collapse" data-target="#objects">
|
||||||
|
Hide
|
||||||
|
</button>
|
||||||
|
<h3 class="margin-none">Objects</h3>
|
||||||
|
<div id="objects" class="collapse in">
|
||||||
|
here things
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-danger btn-small pull-right"
|
||||||
|
data-toggle="collapse" data-target="#lights">
|
||||||
|
Hide
|
||||||
|
</button>
|
||||||
|
<h3 class="margin-none">Lights</h3>
|
||||||
|
<div id="lights" class="collapse in">
|
||||||
|
here things
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
|
from database.models import Texture
|
||||||
|
|
||||||
|
|
||||||
def main(request):
|
def main(request):
|
||||||
context = RequestContext(request)
|
textures = Texture.objects.all()
|
||||||
|
|
||||||
|
data = {
|
||||||
|
'textures': textures
|
||||||
|
}
|
||||||
|
|
||||||
|
context = RequestContext(request, data)
|
||||||
return render_to_response('studio/main.html', context_instance=context)
|
return render_to_response('studio/main.html', context_instance=context)
|
||||||
|
|
Loading…
Reference in New Issue