當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript ekkiog-editing.getTileAt函數代碼示例

本文整理匯總了TypeScript中ekkiog-editing.getTileAt函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getTileAt函數的具體用法?TypeScript getTileAt怎麽用?TypeScript getTileAt使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了getTileAt函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: insertMovableItem

function* insertMovableItem(initialForest : Forest, tool : Tool, direction : Direction, x : number, y : number){
  const forest = tap(createForest(initialForest.buddyTree), tool, direction, x, y);
  const item = getTileAt(forest, x, y);

  const ok = yield* selection(item);
  if(ok){
    yield put(saveForest(`Inserted ${tool}`));
  }
};
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:9,代碼來源:tapTile.ts

示例2: moveItemAt

export default function* moveItemAt({tx, ty} : MoveItemAtAction){
  const {context: {forest: initialForest}} : State = yield select();

  const item = getTileAt(initialForest, tx, ty);
  yield put(removeTileAt(tx, ty));

  const ok = yield* selection(item);
  if(ok) {
    yield put(saveForest(`Moved ${item.data.type}`));
  } else {
    yield put(setForest(initialForest));
  }
};
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:13,代碼來源:moveItemAt.ts

示例3: zomOutOf

export default function* zomOutOf({} : ZoomOutOfAction){
  const { context: currentContext, selection: {selection: isSelection}} : State = yield select();

  if(isSelection){
    yield put(stopSelection());
    yield put(resetEditorMenu());
  }

  const outerContext = currentContext.previous;
  if(!outerContext) return;

  const innerContext : ContextState = yield* waitUntilSaved(currentContext);

  yield put(popContext());
  yield put(setUrl(outerContext.repo, outerContext.name));
  if(innerContext.isReadOnly || outerContext.isReadOnly) return;

  const pkg = packageComponent(innerContext.forest, innerContext.repo, innerContext.name, innerContext.hash, innerContext.hash);
  const {forest, didntFit} = replaceComponents(outerContext.forest, pkg);
  if(outerContext.forest !== forest){
    yield put(setForest(forest));
  }

  for(const position of didntFit) {
    yield put(removeTileAt(position.x, position.y));
    const {context: {forest: newForest}} : State = yield select();

    const forest = drawComponent(createForest(newForest.buddyTree), position.x, position.y, pkg);

    const item = getTileAt(forest, position.x, position.y);
    yield* selection(item);
  };

  const { context: newContext } : State = yield select();
  if(outerContext.forest !== newContext.forest){
    yield put(saveForest(`Updated ${pkg.name}`));
  }
}
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:38,代碼來源:zoomOutOf.ts

示例4: insertComponentPackage

export default function* insertComponentPackage({componentPackage} : InsertComponentPackageAction){
  const state : State = yield select();

  if(state.selection.selection){
    yield put(stopSelection());
    yield put(resetEditorMenu());
  }

  const tile = state.view.viewportToTile(state.view.pixelWidth/2, state.view.pixelHeight/2);
  const centerTile = {
    x: tile[0]|0,
    y: tile[1]|0
  };

  const forest = drawComponent(createForest(state.context.forest.buddyTree), centerTile.x, centerTile.y, componentPackage);

  const item = getTileAt(forest, centerTile.x, centerTile.y);

  const ok = yield* selection(item);
  if(ok){
    yield put(saveForest(`Inserted ${componentPackage.name}`));
  }
}
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:23,代碼來源:insertComponentPackage.ts

示例5: tapTile

export default function* tapTile({x, y, tool, direction} : TapTileAction) {
  const {context: {forest, isReadOnly}} : State = yield select();

  yield nextFrame();
  const area = getTileAt(forest, x, y);
  if(area && area.data && area.data.type === BUTTON){
    const net = area.data.net;
    yield put(toggleButton(net));
  }else{
    if(isReadOnly) return;
    yield put(draw(x, y, tool, direction));

    const {context: {forest: mutatedForest}} : State = yield select();
    if(forest === mutatedForest){
      if(tool == BUTTON
      || tool == GATE
      || tool == LIGHT){
        yield* insertMovableItem(mutatedForest, tool, direction, x, y);
      }
    }else{
      yield put(saveForest(`Inserted ${tool}`));
    }
  }
}
開發者ID:mariusGundersen,項目名稱:Ekkiog,代碼行數:24,代碼來源:tapTile.ts


注:本文中的ekkiog-editing.getTileAt函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。